L’objectif est de commander l’angle de rotation d’un servomoteur par le biais d’une interface homme-machine (IHM) comportant un curseur de réglage et un bouton poussoir d’envoi de la valeur réglée.
On utilise la bibliothèque « Serial » pour communiquer avec la carte Arduino, par l'intermédiaire des méthodes suivantes :
Le programme suivant permet de réaliser la commande du servomoteur de la base du robot par une IHM Tkinter :
from tkinter import Tk, Button, Label, Scale
import serial
# Ouverture de la liaison série
try:
ser = serial.Serial("COM8", 115200, timeout=1) # A modifier !
print(ser)
liaison=True
except:
print("Pas de liaison avec la carte Arduino !")
liaison=False
# Envoi des caractères sur la liaison série
def envoyer(datacmd) :
try:
ser.write((datacmd).encode('utf-8'))
except:
print("bp d'écriture")
def servomot():
b=str(curseur_base.get())
data = "B"+b
envoyer(data)
# L'IHM
fen = Tk()
fen.geometry("500x200")
fen.title("Commande du servomoteur")
label = Label(fen, text="Commande du servomoteur",fg="blue",font=("Arial", 22, "bold", "italic"))
label.place(x=50, y=10)
curseur_base = Scale(fen, orient='horizontal', from_=0, to=180, length=200)
curseur_base.place(x=145, y=50)
curseur_base.set(90)
bouton = Button(fen, text="envoyer", command=servomot)
bouton.place(x=220, y=100)
fen.mainloop()
if liaison : ser.close()
Source : https://lesmanuelslibres.region-academique-idf.fr Télécharger le manuel : https://forge.apps.education.fr/drane-ile-de-france/les-manuels-libres/snt-seconde ou directement le fichier ZIP Sous réserve des droits de propriété intellectuelle de tiers, les contenus de ce site sont proposés dans le cadre du droit Français sous licence CC BY-NC-SA 4.0